/*
 * @Description: 公共方法
 * @Version: 1.0
 * @Author: tao
 * @Date: 2021-01-22 20:51:22
 * @LastEditors: tao
 * @LastEditTime: 2021-03-25 23:07:05
 */
import Vue from 'vue'

/**
 * @description: 下载文件
 * @param {Blob} result 二进制文件
 * @param {String} file 文件名+后缀
 * @param {String} name 重命名
 * @author: tao
 */
export function downloadOfA(result, file, name) {
  //获取文件的后缀名
  const suffix = file.split(".").pop();
  let a = document.createElement("a");
  //对于<a>标签，只有 Firefox 和 Chrome（内核） 支持 download 属性，IE10+支持blob但是依然不支持download
  if ("download" in a) {
    let url = window.URL.createObjectURL(result); //为文件流创建构建下载链接
    a.style.display = "none";
    a.href = url;
    //设置a标签的下载动作和下载文件名
    a.setAttribute(
      "download",
      `${name}.${suffix}`
    );
    document.body.appendChild(a);
    a.click(); //执行下载
    document.body.removeChild(a); //释放标签
    return;
  }
  //兼容其他浏览器
  navigator.msSaveBlob(
    result,
    `${name}.${suffix}`
  );
}

/**
 * @description: 判断对象中是否存在属性的值为空
 * @param {Object} obj
 * @return {Boolean}
 * @author: tao
 */
export function hasPropertyEmpty(obj) {
  for (let key in obj) {
    if (obj[key] === undefined || obj[key] === null || obj[key].length === 0) {
      console.log(key, obj[key])
      Vue.prototype.$message.warning("请不要留空", 1.5);
      return true
    }
  }
  return false
}

/**
 * @description: 根据值获取对象的键
 * @param {Object} obj
 * @param {String} value
 * @return {String}
 * @author: tao
 */
export function findObjectKeyByValue(obj, value) {
  return Object.keys(obj).find(key => obj[key] === value)
}

/**
 * @description: 判断字符串是否为手机号码
 * @param {*} phone
 * @return {*}
 * @author: tao
 */
export function isPhone(phone) {
  if (phone.length != 11) return
  const reg = /^[1][0-9]{10}$/;
  return reg.test(phone)
}